const fs = require("fs");

// 方式一: 一次性读取和写入文件
// fs.readFile("./stream-file/readFile.txt", (err, data) => {
//   console.log(data);
//   fs.writeFile("./stream-file/writeFileCopy.txt", data, (err) => {
//     console.log("写入成功", err);
//   });
// });

// 方式二: 使用流的方式读取和写入文件
// const readStream = fs.createReadStream("./stream-file/readFile.txt"); // 创建可读流
// const writeStream = fs.createWriteStream("./stream-file/writeStreamCopy.txt"); // 创建可写流

// readStream.on("data", (data) => {
//   // 监听data事件
//   console.log(data);
//   writeStream.write(data);
// });

// readStream.on("end", () => {
//   // 监听end事件
//   console.log("读取完成");
// });

// writeStream.on("finish", () => {
//   // 监听finish事件
//   console.log("写入完成");
// });

// 方式三: 使用pipe方法 - 在可读流和可写流之间建立一个管道
const readStream = fs.createReadStream("./stream-file/readFile.txt"); // 创建可读流
const writeStream = fs.createWriteStream(
  "./stream-file/writeStreamPipeCopy.txt"
); // 创建可写流

readStream.pipe(writeStream); // 在可读流和可写流之间建立一个管道
writeStream.on("finish", () => {
  // 监听finish事件
  console.log("写入完成");
});
